モジュール詳細:偽色付きキューブ

円柱??7?7?77?777777 いや、 そうじゃない...てんてん..てんてん.てん.てん..

色付きキューブ群のモジュールを特定するには、付録CLC-DLCを参照する。

このモジュールには、赤(R)、緑(G)、青(B)、黄(Y)、マゼンタ(M)、シアン(C)、白(W)、黒(K)のいずれかの色付きキューブがある。選択できる箇所は、キューブ全体である。

このモジュールを通して、Cという変数を管理する必要がある。Cは下記の4種類の型のいずれかになる。初期状態ではC未定義である。Cの型を一度定義したら、その後は型を変更できないことに注意する。 なお、偶奇性とは、その数字が偶数か奇数であるかを指す用語である。2つの数字の偶奇性が一致する場合、それらは(偶数, 偶数)または(奇数, 奇数)の数字のペアである。

  • 数値型:0~9999の整数。Cがこの範囲外になった場合、10000で割った余りをCとする。加算、減算、乗算、除算、余りの算出(0で割る・0で割った余りは0とする。除算時は小数点以下切り捨て)、および数字を逆順に並べる操作ができる。
  • 文字列型:英字のみからなる文字列。先頭・途中・末尾への単一文字あるいは文字列の追加(例:"COLORED"の末尾に"CUBE"を追加する→"COLOREDCUBE"、"COLORED"の先頭に"NOT"を追加する→"NOTCOLORED"、"COLORED"の5番目に"U"を追加する→"COLOURED")、順序の反転、左/右へのシフト(例:「ABC」を左に2回シフト→「CAB」、「XYZ」を右に2回シフト→「YZX」)、特定の演算や条件に合致した部分文字列の取得ができる。
  • 真偽値型TRUE(真)またはFALSE(偽)。論理演算子を適用できる(6ページ最後の表を参照)。また、特定条件下では、二択問題の答えとして利用・設定されることがある。
  • 未定義:この状態の変数ができることは、上記いずれかの型定義を変数に当てはめることのみである。

このモジュール内の10ステージにある各ルールに従う(キューブ上面左上の数字がステージ番号を示す)。

注:ルール中の「S#」はシリアルナンバーを指す。特に記載がない限り、アルファベット位置はA1Z26(A=1, B=2, …, Z=26)とする。一つ前のステージのキューブの色を参照する場合があるため、一つ前のステージで出現したすべてのキューブの色を記録しておくこと。

ステージ1

  • キューブの色が……
    • 赤またはシアン:Cを、S#の最後の数字と等しい数値型として定義する。カウントダウンタイマーの下一桁がCと等しい時にキューブを押す。
    • 黄:Cを、S#の英字を連結(左から右に)した文字列型として定義する。カウントダウンタイマーの秒数の2桁が、[Cの末尾の文字のアルファベット上での位置+1で割り切れる時にキューブを押す。
    • 白または黒:Cを「S#の最初の数字は偶数か?」の答えと等しい真偽値型として定義する。「カウントダウンタイマーの下一桁とバッテリーホルダーの個数の偶奇性が同じか?」の答えがCと一致する時にキューブを押す。
    • 上記以外:カウントダウンタイマーの下一桁が素数の時にキューブを押す。

ステージ2

  • Cの型によって以下の通りにする。
    • 数値型:3倍して1を加える。カウントダウンタイマーの秒の2桁が[Cを60で割った余り]と等しい時にキューブを押す。
    • 文字列型:バッテリー数+バッテリーホルダー数を26で割った余りをA0Z25(0=A, 1=B…25=Z)に変換し、Cの末尾に追加する。カウントダウンタイマーの秒数の2桁を26で割った余りをA0Z25に変換し、それがCに含まれていればキューブを押す。
    • 真偽値型:キューブが黒・青・緑・マゼンタならCにNOT演算を適用する。「カウントダウンタイマーの下一桁は合成数か?」の答えがCと一致する時にキューブを押す。
    • 未定義:空のポートプレートがある場合、CTRUE真偽値型として定義する。そうでなければ、5個以上のポートがある場合、[ポートの個数×ポートプレートの個数]の数値型として定義する。キューブはいつでも押してよい。

ステージ3

  • キューブが赤・緑・青で、かつCが…
    • 数値型:数字を逆順にし、自身の数字根を掛ける。
    • 文字列型:逆順し、Cの長さが奇数なら先頭に「ODD」を追加し、前半部分のみを最終的なCとする。
    • 真偽値型:自身の値と「通常モジュールの数が偶数か?」の答えでXNOR演算を行う。
    • 未定義FALSE真偽値型として定義し、上記真偽値型のルールに従う。
  • 以下のエッジワーク値(0なら1に置き換える)の積を取る:バッテリーの個数、バッテリーホルダーの個数、インジケーターの個数、ポートの個数、ポートプレートの個数、S#の数字の合計。Cが0以外の数値型なら、その値を掛ける。カウントダウンタイマーの秒数の2桁がこの計算結果を60で割った余りと等しい時にキューブを押す。

ステージ4

  • キューブが白でCが定義済みの場合:
    • Cの型によって以下の通りにする。
      • 数値型Cを、S#の数字(左から右)を連結したものにする(数字がなければ0とする)。
      • 文字列型Cを、爆弾上のモジュール名(通常/特殊)のうち 、空白を無視してアルファベット順で並べた際に最初に来るものとする(アルファベットと空白のみで構成されていないモジュールと日本語版のバニラモジュールは除外する)。
      • 真偽値型CにNOT演算を適用する。
    • 上記処理後、いつでもキューブを押してよい。
  • それ以外の場合、Cが…
    • 数値型:カウントダウンタイマーの十の位がCの最初の数字を6で割った余りと等しい時にキューブを押す。
    • 真偽値型:「カウントダウンタイマーの十の位は合成数か?」の答えがCと一致する時にキューブを押す。
    • 上記以外:カウントダウンタイマーの秒の2桁が一致している時にキューブを押す。

ステージ5

  • S#の最後の数字が偶数で、かつCが…
    • 数値型Cを、10000からCを引いた値をとする。
    • 文字列型:S#の最後の数字+1だけ右にシフトし、S#の最初の数字+1だけ左にシフトする。
    • 未定義かつS#に素数の数字が含まれる:Cを「CUBE」という文字列型として定義する。
  • 以下の内容とカウントダウンタイマーの下一桁が一致した時にキューブを押す。
    • 数値型Cの偶奇性。
    • 文字列型Cの先頭と末尾の文字の和の偶奇性。和はアルファベット上の位置で考える。
    • 真偽値型CTRUEならS#の最初の数字、FALSEなら最後の数字の偶奇性。
    • 未定義:3525854の偶奇性。

ステージ6~10

  • Cが定義済みの場合、以下の通りにCを修正する。
    • 数値型の場合:以下の表で操作内容を決定する。必要に応じてもう一つの表で修正値M)を取得する(なんらかのエッジワーク値になる)。
ステージのキューブ色 →
操作 → Cに[2×M]を加える CMを掛ける Cを[2×M]で割る Cを2倍し、Mで割る
ステージのキューブ色 → マゼンタ シアン
操作 → CからMを引き、3で割る Cから[CMで割った余り]を引き、Mで割る Cを逆順にする Cを変更しない
ステージ番号 →
このステージのキューブ色 ↓
678910
バッテリーホルダー ステレオRCAポート S#の最後の数字 DVI-Dポート S#の数字の合計
S#の最初の数字 S#の英字の個数 PS/2ポート S#の最後の数字 S#の子音の個数
S#の英字の個数 シリアルポート 単1バッテリー S#の数字の個数 インジケーター
バッテリー S#の数字の合計 ポートプレート バッテリーホルダー 単3バッテリー
マゼンタ パラレルポート 単3バッテリー S#の最後の数字 バッテリー S#の母音の個数
シアン S#の子音の個数 S#の数字の個数 バッテリーホルダー S#の3文字目 単1バッテリー
点灯インジケーター ポート S#の最初の数字 ステレオRCAポート インジケーター
ポート S#の母音の個数 RJ-45ポート ポートプレート 点灯していないインジケーター
    • 文字列型の場合、以下の修正を行う。
      1. S#の最後の数字をステージ番号に足し、S#の最初の数字が奇数なら5を引く。この数値をA1Z26(1=A, 2=B…26=Z)に変換する。ステージ番号が偶数ならその文字をCの末尾に追加し、奇数なら先頭に追加する。
      2. 上記で得た文字にAtbash暗号を適用する(アルファベット位置を27から引き、A1Z26に変換)。[(ステージ番号をCの長さで割った余り) + 1]番目にこの文字を挿入する。
      3. 下表でキューブの色から単語を取得し、もう一つの表でステージ番号と[Cの長さ を10で割った余り]から単語内の単一文字/部分文字列を決定する。ステージ番号が偶数ならその文字をCの先頭に、奇数なら末尾に追加する。
キューブ色 → マゼンタ シアン
単語 →REBOOTTOUCHEWATERSGOLDENPARSEDBREEZYBRIGHTVOIDED
(数字) - その位置の文字;
(数字1)-(数字2) - (数字1)から(数字2)までの部分文字列
ステージ番号 →
[Cの長さを10で割った余り] ↓
678910
012-65-641-6
13-464-51-64
21-63-451-22
31-3561-62
42-61-51-64-64
52-44-531-61-5
61-62-31-334-6
722-51-635-6
81-441-614-5
951-622-43-5
    • 真偽値型の場合:このステージの数値型セクションの2つ目の表で数値を取得し、以下の表で条件を取得する。その数値が条件を満たす場合、このステージの真偽値B)はTRUE、そうでなければFALSEとする。もう一つの表でキューブの色から論理演算子を取得し、CBを演算する(演算子がNOTの場合、Bは無視)。結果をCとする。
ステージ番号 →678910
条件 →その数字は偶数である。その数字は合成数である。その数字は奇数である。その数字は5で割り切れる。その数字は素数である。
キューブ色 → マゼンタ シアン
演算子 →ORNANDXORXORNORXNORANDNOT
CBNOTORANDXORNORNANDXNOR
FFTFFFTTT
FTTTFTFTF
TFFTFTFTF
TTFTTFFFT
  • キューブを押すタイミングは以下の通りにする。Cが……
    • 数値型の場合:
      • ステージ6:Cの数字根とカウントダウンタイマーの下一桁が一致した時。
      • ステージ7:カウントダウンタイマーの秒数の2桁の和が[(Cを9で割った余り) + 3]と一致した時。
      • ステージ8:カウントダウンタイマーの秒数の2桁の絶対差が[Cを5で割った余り]と一致した時。
      • ステージ9:カウントダウンタイマーの秒数の両方の桁とCの偶奇性が一致した時。
      • ステージ10:カウントダウンタイマーの下一桁が[Cの下一桁]と一致し、かつ十の位が[Cの最初の数字を6で割った余り]と一致した時。
    • 文字列型:[Cの最初と2番目の文字のアルファベット上の位置の和]と[末尾と末尾から2番目のアルファベット上の位置の和]の絶対差を取得する。その値とカウントダウンタイマーの秒数が一致した時にキューブを押す。
    • 真偽値型:「カウントダウンタイマーの下一桁はこのステージで真偽値を求める際に使用した条件を満たすか?」の答えがCと一致した時にキューブを押す。
    • 未定義:現在のステージ番号から5を引き、このマニュアル内の前のページにあるそのステージのルールに従う(この過程でCが定義される場合がある。定義後もキューブを押すまでそのステージのルールをすべて適用する)。